package com.csun.cmny.provider.service;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.DmcAlarmLightLocation;
import com.csun.cmny.provider.model.dto.alarmlight.AlarmLightDto;
import com.csun.cmny.provider.model.dto.alarmlight.AlarmLightQueryDto;
import com.csun.cmny.provider.model.dto.propertyManagement.SelectDeviceDataDto;
import com.csun.cmny.provider.model.vo.AlarmLightVo;
import com.csun.cmny.provider.model.vo.propertyManagement.PropertyDataVo;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-08-22 14:58
 * @Description: the interface dmc alarm light location service
 */
public interface DmcAlarmLightLocationService extends IService<DmcAlarmLightLocation> {

    /**
     * add alarm light
     *
     * @param alarmLightDto the alarm light dto
     * @param loginAuthDto  the login auth dto
     *
     * @return  the int.
     */
    Integer addAlarmLight(AlarmLightDto alarmLightDto, LoginAuthDto loginAuthDto);

    /**
     * edit alarm light
     *
     * @param alarmLightDto the alarm light dto
     * @param loginAuthDto  the login auth dto
     *
     * @return  the int.
     */
    Integer editAlarmLight(AlarmLightDto alarmLightDto, LoginAuthDto loginAuthDto);

    /**
     * delete alarm light by id
     *
     * @param id    the alarm light id
     *
     * @return  the int.
     */
    Integer deleteAlarmLightById(Long id);

    /**
     * query alarm light list with page
     *
     * @param alarmLightQueryDto    the alarm light query dto
     *
     * @return  the list.
     */
    List<AlarmLightVo> queryAlarmLightListWithPage(AlarmLightQueryDto alarmLightQueryDto);

    /**
     * select one alarm light by rfid read group id
     *
     * @param rfidReaderGroupId the rfid reader group id
     *
     * @return  the alarm light vo
     */
    AlarmLightVo selectOneByRfidReadGroupId(Long rfidReaderGroupId);

    List<PropertyDataVo> selectDeviceData(SelectDeviceDataDto selectDeviceDataDto);
}
